0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 ITRS
↳5 GroundTermsRemoverProof (⇔)
↳6 ITRS
↳7 ITRStoIDPProof (⇔)
↳8 IDP
↳9 UsableRulesProof (⇔)
↳10 IDP
↳11 IDPNonInfProof (⇐)
↳12 AND
↳13 IDP
↳14 IDependencyGraphProof (⇔)
↳15 IDP
↳16 IDPNonInfProof (⇐)
↳17 AND
↳18 IDP
↳19 IDependencyGraphProof (⇔)
↳20 TRUE
↳21 IDP
↳22 IDependencyGraphProof (⇔)
↳23 TRUE
↳24 IDP
↳25 IDependencyGraphProof (⇔)
↳26 TRUE
No human-readable program information known.
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Load373(x1, x2) → Load373(x2)
Cond_Load4391(x1, x2, x3, x4) → Cond_Load4391(x1, x3, x4)
Load439(x1, x2, x3) → Load439(x2, x3)
Cond_Load439(x1, x2, x3, x4) → Cond_Load439(x1, x3, x4)
Cond_Load373(x1, x2, x3) → Cond_Load373(x1, x3)
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((i38[0] →* i38[1])∧(i38[0] >= 0 && i38[0] + 1 > 0 →* TRUE))
(1) -> (2), if ((i38[1] + 1 →* i40[2])∧(1 →* i45[2]))
(1) -> (4), if ((i38[1] + 1 →* i40[4])∧(1 →* i45[4]))
(2) -> (3), if ((i45[2] > 0 && i40[2] >= i45[2] →* TRUE)∧(i45[2] →* i45[3])∧(i40[2] →* i40[3]))
(3) -> (2), if ((i40[3] →* i40[2])∧(i45[3] + 1 →* i45[2]))
(3) -> (4), if ((i40[3] →* i40[4])∧(i45[3] + 1 →* i45[4]))
(4) -> (5), if ((i40[4] →* i40[5])∧(i40[4] > 0 && i40[4] < i45[4] →* TRUE)∧(i45[4] →* i45[5]))
(5) -> (0), if ((i40[5] - 2 →* i38[0]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((i38[0] →* i38[1])∧(i38[0] >= 0 && i38[0] + 1 > 0 →* TRUE))
(1) -> (2), if ((i38[1] + 1 →* i40[2])∧(1 →* i45[2]))
(1) -> (4), if ((i38[1] + 1 →* i40[4])∧(1 →* i45[4]))
(2) -> (3), if ((i45[2] > 0 && i40[2] >= i45[2] →* TRUE)∧(i45[2] →* i45[3])∧(i40[2] →* i40[3]))
(3) -> (2), if ((i40[3] →* i40[2])∧(i45[3] + 1 →* i45[2]))
(3) -> (4), if ((i40[3] →* i40[4])∧(i45[3] + 1 →* i45[4]))
(4) -> (5), if ((i40[4] →* i40[5])∧(i40[4] > 0 && i40[4] < i45[4] →* TRUE)∧(i45[4] →* i45[5]))
(5) -> (0), if ((i40[5] - 2 →* i38[0]))
(1) (i38[0]=i38[1]∧&&(>=(i38[0], 0), >(+(i38[0], 1), 0))=TRUE ⇒ LOAD373(i38[0])≥NonInfC∧LOAD373(i38[0])≥COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])∧(UIncreasing(COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])), ≥))
(2) (>=(i38[0], 0)=TRUE∧>(+(i38[0], 1), 0)=TRUE ⇒ LOAD373(i38[0])≥NonInfC∧LOAD373(i38[0])≥COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])∧(UIncreasing(COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])), ≥))
(3) (i38[0] ≥ 0∧i38[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])), ≥)∧[bni_16 + (-1)Bound*bni_16] + [bni_16]i38[0] ≥ 0∧[1 + (-1)bso_17] ≥ 0)
(4) (i38[0] ≥ 0∧i38[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])), ≥)∧[bni_16 + (-1)Bound*bni_16] + [bni_16]i38[0] ≥ 0∧[1 + (-1)bso_17] ≥ 0)
(5) (i38[0] ≥ 0∧i38[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])), ≥)∧[bni_16 + (-1)Bound*bni_16] + [bni_16]i38[0] ≥ 0∧[1 + (-1)bso_17] ≥ 0)
(6) (COND_LOAD373(TRUE, i38[1])≥NonInfC∧COND_LOAD373(TRUE, i38[1])≥LOAD439(+(i38[1], 1), 1)∧(UIncreasing(LOAD439(+(i38[1], 1), 1)), ≥))
(7) ((UIncreasing(LOAD439(+(i38[1], 1), 1)), ≥)∧[(-1)bso_19] ≥ 0)
(8) ((UIncreasing(LOAD439(+(i38[1], 1), 1)), ≥)∧[(-1)bso_19] ≥ 0)
(9) ((UIncreasing(LOAD439(+(i38[1], 1), 1)), ≥)∧[(-1)bso_19] ≥ 0)
(10) ((UIncreasing(LOAD439(+(i38[1], 1), 1)), ≥)∧0 = 0∧[(-1)bso_19] ≥ 0)
(11) (&&(>(i45[2], 0), >=(i40[2], i45[2]))=TRUE∧i45[2]=i45[3]∧i40[2]=i40[3] ⇒ LOAD439(i40[2], i45[2])≥NonInfC∧LOAD439(i40[2], i45[2])≥COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])∧(UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥))
(12) (>(i45[2], 0)=TRUE∧>=(i40[2], i45[2])=TRUE ⇒ LOAD439(i40[2], i45[2])≥NonInfC∧LOAD439(i40[2], i45[2])≥COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])∧(UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥))
(13) (i45[2] + [-1] ≥ 0∧i40[2] + [-1]i45[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i40[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(14) (i45[2] + [-1] ≥ 0∧i40[2] + [-1]i45[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i40[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(15) (i45[2] + [-1] ≥ 0∧i40[2] + [-1]i45[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i40[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(16) (i45[2] ≥ 0∧i40[2] + [-1] + [-1]i45[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)bni_20 + (-1)Bound*bni_20] + [bni_20]i40[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(17) (i45[2] ≥ 0∧i40[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)Bound*bni_20] + [bni_20]i45[2] + [bni_20]i40[2] ≥ 0∧[(-1)bso_21] ≥ 0)
(18) (COND_LOAD439(TRUE, i40[3], i45[3])≥NonInfC∧COND_LOAD439(TRUE, i40[3], i45[3])≥LOAD439(i40[3], +(i45[3], 1))∧(UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥))
(19) ((UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥)∧[(-1)bso_23] ≥ 0)
(20) ((UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥)∧[(-1)bso_23] ≥ 0)
(21) ((UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥)∧[(-1)bso_23] ≥ 0)
(22) ((UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥)∧0 = 0∧0 = 0∧[(-1)bso_23] ≥ 0)
(23) (i40[4]=i40[5]∧&&(>(i40[4], 0), <(i40[4], i45[4]))=TRUE∧i45[4]=i45[5] ⇒ LOAD439(i40[4], i45[4])≥NonInfC∧LOAD439(i40[4], i45[4])≥COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])∧(UIncreasing(COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])), ≥))
(24) (>(i40[4], 0)=TRUE∧<(i40[4], i45[4])=TRUE ⇒ LOAD439(i40[4], i45[4])≥NonInfC∧LOAD439(i40[4], i45[4])≥COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])∧(UIncreasing(COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])), ≥))
(25) (i40[4] + [-1] ≥ 0∧i45[4] + [-1] + [-1]i40[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i40[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(26) (i40[4] + [-1] ≥ 0∧i45[4] + [-1] + [-1]i40[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i40[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(27) (i40[4] + [-1] ≥ 0∧i45[4] + [-1] + [-1]i40[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])), ≥)∧[(-1)bni_24 + (-1)Bound*bni_24] + [bni_24]i40[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(28) (i40[4] ≥ 0∧i45[4] + [-2] + [-1]i40[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])), ≥)∧[(-1)Bound*bni_24] + [bni_24]i40[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(29) (i40[4] ≥ 0∧i45[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])), ≥)∧[(-1)Bound*bni_24] + [bni_24]i40[4] ≥ 0∧[(-1)bso_25] ≥ 0)
(30) (COND_LOAD4391(TRUE, i40[5], i45[5])≥NonInfC∧COND_LOAD4391(TRUE, i40[5], i45[5])≥LOAD373(-(i40[5], 2))∧(UIncreasing(LOAD373(-(i40[5], 2))), ≥))
(31) ((UIncreasing(LOAD373(-(i40[5], 2))), ≥)∧[(-1)bso_27] ≥ 0)
(32) ((UIncreasing(LOAD373(-(i40[5], 2))), ≥)∧[(-1)bso_27] ≥ 0)
(33) ((UIncreasing(LOAD373(-(i40[5], 2))), ≥)∧[(-1)bso_27] ≥ 0)
(34) ((UIncreasing(LOAD373(-(i40[5], 2))), ≥)∧0 = 0∧0 = 0∧[(-1)bso_27] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD373(x1)) = [1] + x1
POL(COND_LOAD373(x1, x2)) = x2
POL(&&(x1, x2)) = [-1]
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(>(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(LOAD439(x1, x2)) = [-1] + x1
POL(COND_LOAD439(x1, x2, x3)) = [-1] + x2
POL(COND_LOAD4391(x1, x2, x3)) = [-1] + x2
POL(<(x1, x2)) = [-1]
POL(-(x1, x2)) = x1 + [-1]x2
POL(2) = [2]
LOAD373(i38[0]) → COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])
LOAD373(i38[0]) → COND_LOAD373(&&(>=(i38[0], 0), >(+(i38[0], 1), 0)), i38[0])
LOAD439(i40[2], i45[2]) → COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])
LOAD439(i40[4], i45[4]) → COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])
COND_LOAD373(TRUE, i38[1]) → LOAD439(+(i38[1], 1), 1)
LOAD439(i40[2], i45[2]) → COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])
COND_LOAD439(TRUE, i40[3], i45[3]) → LOAD439(i40[3], +(i45[3], 1))
LOAD439(i40[4], i45[4]) → COND_LOAD4391(&&(>(i40[4], 0), <(i40[4], i45[4])), i40[4], i45[4])
COND_LOAD4391(TRUE, i40[5], i45[5]) → LOAD373(-(i40[5], 2))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(1) -> (2), if ((i38[1] + 1 →* i40[2])∧(1 →* i45[2]))
(3) -> (2), if ((i40[3] →* i40[2])∧(i45[3] + 1 →* i45[2]))
(2) -> (3), if ((i45[2] > 0 && i40[2] >= i45[2] →* TRUE)∧(i45[2] →* i45[3])∧(i40[2] →* i40[3]))
(1) -> (4), if ((i38[1] + 1 →* i40[4])∧(1 →* i45[4]))
(3) -> (4), if ((i40[3] →* i40[4])∧(i45[3] + 1 →* i45[4]))
(4) -> (5), if ((i40[4] →* i40[5])∧(i40[4] > 0 && i40[4] < i45[4] →* TRUE)∧(i45[4] →* i45[5]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(3) -> (2), if ((i40[3] →* i40[2])∧(i45[3] + 1 →* i45[2]))
(2) -> (3), if ((i45[2] > 0 && i40[2] >= i45[2] →* TRUE)∧(i45[2] →* i45[3])∧(i40[2] →* i40[3]))
(1) (COND_LOAD439(TRUE, i40[3], i45[3])≥NonInfC∧COND_LOAD439(TRUE, i40[3], i45[3])≥LOAD439(i40[3], +(i45[3], 1))∧(UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥))
(2) ((UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥)∧[1 + (-1)bso_10] ≥ 0)
(3) ((UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥)∧[1 + (-1)bso_10] ≥ 0)
(4) ((UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥)∧[1 + (-1)bso_10] ≥ 0)
(5) ((UIncreasing(LOAD439(i40[3], +(i45[3], 1))), ≥)∧0 = 0∧0 = 0∧[1 + (-1)bso_10] ≥ 0)
(6) (&&(>(i45[2], 0), >=(i40[2], i45[2]))=TRUE∧i45[2]=i45[3]∧i40[2]=i40[3] ⇒ LOAD439(i40[2], i45[2])≥NonInfC∧LOAD439(i40[2], i45[2])≥COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])∧(UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥))
(7) (>(i45[2], 0)=TRUE∧>=(i40[2], i45[2])=TRUE ⇒ LOAD439(i40[2], i45[2])≥NonInfC∧LOAD439(i40[2], i45[2])≥COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])∧(UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥))
(8) (i45[2] + [-1] ≥ 0∧i40[2] + [-1]i45[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [(-1)bni_11]i45[2] + [bni_11]i40[2] ≥ 0∧[(-1)bso_12] ≥ 0)
(9) (i45[2] + [-1] ≥ 0∧i40[2] + [-1]i45[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [(-1)bni_11]i45[2] + [bni_11]i40[2] ≥ 0∧[(-1)bso_12] ≥ 0)
(10) (i45[2] + [-1] ≥ 0∧i40[2] + [-1]i45[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [(-1)bni_11]i45[2] + [bni_11]i40[2] ≥ 0∧[(-1)bso_12] ≥ 0)
(11) (i45[2] ≥ 0∧i40[2] + [-1] + [-1]i45[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-2)bni_11 + (-1)Bound*bni_11] + [(-1)bni_11]i45[2] + [bni_11]i40[2] ≥ 0∧[(-1)bso_12] ≥ 0)
(12) (i45[2] ≥ 0∧i40[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])), ≥)∧[(-1)bni_11 + (-1)Bound*bni_11] + [bni_11]i40[2] ≥ 0∧[(-1)bso_12] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(COND_LOAD439(x1, x2, x3)) = [-1] + x2 + [-1]x3
POL(LOAD439(x1, x2)) = [-1] + [-1]x2 + x1
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(>=(x1, x2)) = [-1]
COND_LOAD439(TRUE, i40[3], i45[3]) → LOAD439(i40[3], +(i45[3], 1))
LOAD439(i40[2], i45[2]) → COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])
LOAD439(i40[2], i45[2]) → COND_LOAD439(&&(>(i45[2], 0), >=(i40[2], i45[2])), i40[2], i45[2])
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer